package com.yulan.bankback.service.bank;

import com.yulan.bankback.entity.model.bank.*;
import com.yulan.bankback.entity.vo.CardVo;
import com.yulan.bankback.entity.vo.MoneyDetailVo;
import com.yulan.bankback.entity.vo.UserVo;

import java.util.List;

public interface BankService {

    void addUser(BankUser bankUser);

    UserVo getUserVo(String uid);

    void recharge(String uid, Double money, String type, String cardId);

    List<BankCard> getUserAllCard(String uid);

    List<CardFlow> getUserOneCardDetail(String start, String end, String type, String uid, String cid);

    String withdrawal(String uid, String cid, Double money, String payPassword);

    String transfer(String uid, String destUid, Double money, String payPassword);

    MoneyDetailVo moneyDetail(String uid);

    //查询该用户所拥有的优惠券
    List<Coupon> getUserAllCoupon(String uid);

    //根据查询条件查询优惠券
    List<Coupon> getCouponByConditions(String start, String end, String type);

    List<Coupon> getAllCoupon();

    String addCoupon(String type, String name, String start,
                     String end, String overDue, Double discount, Integer count);

    String addUserCoupon(String uid, String cid);

    String deleteUserCoupon(String uid, String cid);

    String rechargeHotCard(String uid, String cid, Double money, String payPassword, Double discount);

    String rechargeCanteenCard( String uid, String cid, Double money, String payPassword, Double discount);

    CardVo getUserHotCard(String uid);

    CardVo getUserCanteenCard(String uid);

    String bindCard(String uid, String cid, String cardName);

    List<Notice> getAllNotice();

    Notice getNoticeById(String id);

    String addNotice(String title, String publisher, String type, String content);

    String updateNotice(String id, String title, String publisher, String type, String content);

    List<Notice> getNoticeByConditions(String title, String publisher, String type,String start, String end);

    List<Coupon> getUserAllHotCardCoupon(String uid);

    List<Coupon> getUserAllCanteenCoupon(String uid);

}
